home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / gfxripper.lha / memsearcher.S < prev   
Encoding:
Text File  |  1990-09-14  |  12.7 KB  |  785 lines

  1.     section l,code_c
  2.  
  3. ; ****************************************************
  4. ; *****                                          *****
  5. ; *****                MemSearch                 *****
  6. ; *****              ------------                *****
  7. ; *****                                          *****
  8. ; *****      By :   Orlando Budelacci            *****
  9. ; *****             Birmannsgasse 34             *****
  10. ; *****             CH-4055 Basel                *****
  11. ; *****             Switzerland                  *****
  12. ; *****                                          *****
  13. ; *****   Comments and contributions welcomed!   *****
  14. ; *****                                          *****
  15. ; ****************************************************
  16.  
  17. ; ---------- Note -----------
  18.  
  19. ; *** Object file MUST have chip hunks !
  20. ; *** Else it WON'T work on computers with fast memory !!!!!!!!
  21.  
  22. ; *** THE PROGRAM ISN'T STARTABLE FROM THE ASSEMBLER
  23. ; *** BECAUSE OF THE TEXTOUTPUT, SO SAVE THE EXECUTABLE
  24. ; *** AND HAVE A LOOK AT IT THEN...
  25.  
  26. ; Written with Masterseka
  27.  
  28. ; ---------- Versions --------
  29.  
  30. ; *** Version V1.01 finished May, 17th 1990
  31. ; *** 100% pc-relative
  32.  
  33. ; ----------------------------------------------------------------
  34.  
  35. ; *** Start of program ***
  36.  
  37. start:
  38.  
  39. ; *** AllocMem for the info board ***
  40.  
  41.     move.l    4.w,a6
  42.     move.l    #80*28,d0        ;size ? 28 lines/hires
  43.     move.l    #$10002,d1        ;type
  44.     jsr    -198(a6)    
  45.     lea    memadr(pc),a2
  46.     move.l    d0,(a2)
  47.     bne.s    alloc_rastport_mem
  48.     rts
  49.  
  50. ; *** Alloc rastport memory ***
  51. ; *** Pointer to rastport in label : 'rastport' ***
  52.  
  53. alloc_rastport_mem:
  54.     moveq    #100,d0            ;size ? 28 lines/hires
  55.     move.l    #$10002,d1        ;type / chip / clear
  56.     jsr    -198(a6)    
  57.     lea    rastport(pc),a2
  58.     move.l    d0,(a2)
  59.     bne.s    open_dos
  60.     bra.L    freemem            ;if error while allocating
  61.                     ;rastport mem, then
  62.                     ;free status line memory
  63.  
  64. ; *** open dos ***
  65.  
  66. open_dos:    
  67.     lea    dosname(pc),a1
  68.     jsr    -408(a6)    
  69.     lea    dosbase(pc),a2
  70.     move.l    d0,(a2)
  71.     
  72. ; *** Put start/end addresses *** 
  73.  
  74.     lea    madr2(pc),a1
  75.     move.l    memadr(pc),d2
  76.     add.l    #[80*28],d2
  77.     bsr.L    long_to_ascii
  78.  
  79.     lea    madr(pc),a1
  80.     move.l    memadr(pc),d2
  81.     bsr.L    long_to_ascii
  82.  
  83. ; *** Get output window ***
  84. ; *** you get : output handle  in label 'outhandle'
  85.  
  86. get_out_put:
  87.     move.l    dosbase(pc),a6
  88.     jsr    -60(a6)            ;OutPut
  89.     lea    outhandle(pc),a3
  90.     move.l    d0,(a3)
  91.  
  92.     lea    help(pc),a2
  93.     move.l    a2,d2
  94.     move.l    #helpend-help,d3
  95.     jsr    -48(a6)
  96.  
  97. ; *** Wait return to start ***
  98.  
  99.     move.l    outhandle(pc),d1
  100.     jsr    -42(a6)            ;Read    
  101.  
  102. ; *** forbid ***
  103.  
  104. forbid:
  105.     move.l    4.w,a6
  106.     jsr    -132(a6)
  107.  
  108. ; *** Set copper bpl's to allocated memory ***
  109.  
  110.     lea    tab_location+2(pc),a0
  111.     move.l    memadr(pc),d1
  112.     swap    d1
  113.     move.w    d1,(a0)
  114.     addq.w    #4,a0
  115.     swap    d1
  116.     move.w    d1,(a0)
  117.  
  118. ; *** Set up system things ***
  119.  
  120. init_system:
  121.     lea    gfxname(pc),a1
  122.     jsr    -408(a6)    
  123.     lea    gfxbase(pc),a2
  124.     move.l    d0,(a2)
  125.  
  126. init_bitmap:
  127.     move.l    gfxbase(pc),a6
  128.     lea    bitmap(pc),a0
  129.     moveq    #1,d0
  130.     move.l    #640,d1
  131.     moveq    #28,d2
  132.     jsr    -390(a6)
  133.     lea    bitmap+8(pc),a2        ;Initbitmap
  134.     move.l    memadr(pc),(a2)
  135.  
  136. initrastport:
  137.     move.l    rastport(pc),a1        ;InitRastport
  138.     jsr    -198(a6)
  139.     
  140.     move.l    rastport(pc),a5
  141.     lea    bitmap(pc),a3
  142.     move.l    a3,4(a5)
  143.  
  144. ; *** Insert correct pointer to fontname in the txtstruc ***
  145.  
  146.     lea    txtstruc(pc),a0
  147.     lea    fontname(pc),a1
  148.     move.l    a1,(a0)
  149.  
  150. open_font:
  151.     lea    txtstruc(pc),a0
  152.     jsr    -72(a6)            ;OpenFont
  153.     move.l    d0,a0
  154.     move.l    rastport(pc),a1
  155.     jsr    -66(a6)            ;SetFont
  156.  
  157. moverast:
  158.     move.l    rastport(pc),a1
  159.     moveq    #20,d0
  160.     moveq    #10,d1
  161.     jsr    -240(a6)
  162.  
  163. ext:
  164.     move.l    #textend-text,d0
  165.     move.l     rastport(pc),a1
  166.     lea    text(pc),a0
  167.     jsr    -60(a6)            ;Text
  168.  
  169. ; *** Start displaying ***
  170.  
  171. start_copper:
  172.     lea    copper(pc),a2
  173.     move.l    a2,$dff080
  174.  
  175. ; *** Start interrupt ***
  176.  
  177. start_int:
  178.     lea    intvec(pc),a2
  179.     move.l    $6c,(a2)
  180.     lea    int(pc),a2
  181.     move.l    a2,$6c
  182.  
  183. mouse:
  184.     bsr.L    fkeys
  185.     lea    endflag(pc),a2
  186.     tst.b    (a2)
  187.     bne.s    close_all
  188.  
  189.     btst    #6,$bfe001
  190.     bne.s    mouse
  191.     
  192. Close_all:
  193.     move.l    gfxbase(pc),a0
  194.     lea    $dff000,a3
  195.     move.l    38(a0),$80(a3)
  196.     move.w    #$83f0,$96(a3)
  197.     lea    intvec(pc),a2
  198.     move.l    (a2),$6c
  199.  
  200. close_gfx:
  201.     move.l    4.w,a6
  202.     move.l    gfxbase(pc),a1
  203.     jsr    -414(a6)    
  204.  
  205. close_dos:
  206.     move.l    dosbase(pc),a1
  207.     jsr    -414(a6)
  208.  
  209. permit:
  210.     move.l    4.w,a6
  211.     jsr    -138(a6)
  212. freemem:            ;bitplane
  213.     move.l    memadr(pc),a1
  214.     move.l    #80*28,d0        ;size 28 lines /hires
  215.     jsr    -210(a6)
  216.  
  217. end:
  218.     moveq    #0,d0
  219.     rts
  220.  
  221. ; *** Interrupt ***
  222.  
  223. int:
  224.     movem.l    d0-d7/a0-a6,-(sp)
  225.  
  226. ; *** Make longword from 2 words at bpl position ***
  227.  
  228. makelo:    lea    bpl(pc),a1
  229.     bsr.L    create_longword        ;save longword in 
  230.                     ;pointer longword
  231. ; *** $000000 to $7ffff ***
  232.  
  233.     lea    longadr(pc),a3
  234.     move.l    (a3),d0
  235.     move.l    speed(pc),d1
  236.     cmp.l    d1,d0                
  237.     blo.s    low            ;branch if lower
  238.     move.l    #$7ffff,d2
  239.     sub.l    d1,d2
  240.     cmp.l    d2,d0
  241.     bhi.s    high            ;branch if higher
  242.     bra.s    keys
  243. low:
  244.     move.l    #$7ffff-961,(a3)
  245.     bra.s    keys
  246. high:
  247.     move.l    #$0+961,(a3)
  248.  
  249. ; *** Key test ***
  250.  
  251. keys:
  252.     move.b    $bfec01,d0        
  253.     move.l    speed(pc),d5
  254.     lea    longadr(pc),a3
  255.     lea    statusflag(pc),a4
  256.     lea    modtext(pc),a5
  257.  
  258.     cmp.b    #$65,d0        
  259.     beq.s    down
  260.     cmp.b    #$67,d0
  261.     beq.s    up
  262.     cmp.b    #$63,d0
  263.     beq.s    right
  264.     cmp.b    #$61,d0
  265.     beq.s    left
  266.     cmp.b    #$33,d0
  267.     beq.L    moduloUp
  268.     cmp.b    #$37,d0
  269.     beq.L    ModuloDown    
  270.  
  271.     bra.s    exit    
  272.  
  273. down:
  274.     add.l    d5,(a3)
  275.     bra.s    exit
  276.  
  277. right:
  278.     addq.l    #2,(a3)
  279.     bra.s    exit
  280. left:
  281.     subq.l    #2,(a3)
  282.     bra.s    exit
  283.  
  284. up:
  285.     sub.l    d5,(a3)
  286.  
  287. exit:    
  288.  
  289. ; *** recalculate longword in two words for copper list ***
  290.  
  291.     move.l    longadr(pc),d2
  292.     bsr.L    make_words
  293.     lea    numtext(pc),a1
  294.  
  295. ; *** Address is in d2 / calculate ascii values 
  296. ; *** and write them into 'num' ***
  297.  
  298.     bsr.L    long_to_ascii
  299.  
  300. ; *** Move rastport to correct position ***
  301.  
  302.     move.l    gfxbase(pc),a6
  303.     move.l    rastport(pc),a1
  304.     move.l    #572,d0
  305.     moveq    #10,d1
  306.     jsr    -240(a6)
  307.  
  308. ; *** Print contents of pointer 'longadr' ***
  309.  
  310.     move.l    #numtextend-numtext,d0
  311.     move.l    rastport(pc),a1
  312.     lea    numtext(pc),a0
  313.     jsr    -60(a6)            ;Text
  314.  
  315. ; *** Restore status line ? ***
  316.  
  317.     lea    statusflag(pc),a2
  318.     cmp.b    #1,(a2)
  319.     bne.s    endi
  320.  
  321. ; *** Status line / move rastport ***
  322.  
  323.     move.l    rastport(pc),a1
  324.     moveq    #20,d0
  325.     moveq    #20,d1
  326.     jsr    -240(a6)
  327.  
  328. ; *** Print status line ***
  329.  
  330.     move.l    #infotextend-infotext,d0
  331.     move.l    rastport(pc),a1
  332.     lea    infotext(pc),a0
  333.     jsr    -60(a6)            ;Text
  334.     lea    statusflag(pc),a2
  335.     clr.b    (a2)
  336.  
  337. ; *** End of interrupt ***
  338.  
  339. endi:    
  340.     movem.l    (sp)+,d0-d7/a0-a6    
  341.     dc.w    $4ef9
  342.  
  343. intvec:dc.l    0
  344.  
  345. ; *** Subroutines ***
  346.  
  347.  
  348. ; *** Display help text ***
  349.  
  350. helpME:
  351.  
  352. end_interrupt:
  353.     move.l    intvec(pc),$6c
  354.     lea    $dff000,a5
  355.  
  356.     move.w    #$8020,$96(a5)
  357.     move.l    4.w,a6
  358.     jsr    -138(a6)
  359.  
  360.     lea    gfxname(pc),a1
  361.     jsr    -408(a6)
  362.     move.l    d0,a0
  363.     move.l    38(a0),$80(a5)
  364.  
  365.     move.l    dosbase(pc),a6
  366.     move.l    outhandle(pc),d1
  367.     lea    helptext(pc),a2
  368.     move.l    a2,d2
  369.     move.l    #Helptextend-helptext,d3
  370.     jsr    -48(a6)
  371.  
  372.     move.l    outhandle(pc),d1
  373.     jsr    -42(a6)            ;Read
  374.  
  375.     move.l    4.w,a6
  376.     jsr    -132(a6)
  377.  
  378.     lea    intvec(pc),a2
  379.     move.l    $6c,(a2)
  380.     lea    int(pc),a2
  381.     move.l    a2,$6c
  382.  
  383.     move.w    #$0020,$96(a5)
  384.  
  385.     lea    copper(pc),a2
  386.     move.l    a2,$80(a5)
  387.     rts
  388.  
  389. ; *** Longword to ascci-string ***
  390.  
  391. ; *** Values  :   a1 = pointer to destination
  392. ;          d2 = source
  393.  
  394. long_to_ascii:
  395.     moveq    #7,d1
  396.  
  397. asciiloop1:
  398.     rol.l    #4,d2
  399.     move.l    d2,d3
  400.     and.b    #15,d3
  401.     add.b    #$30,d3
  402.     cmp.b    #$3a,d3
  403.     bcs.s    asciiloop2
  404.     addq.b    #7,d3
  405. asciiloop2:
  406.     move.b    d3,(a1)+
  407.     dbra    d1,asciiloop1
  408.     add.l    #20,a1
  409.     rts
  410.  
  411. ; *** Create longword from 4 words ***
  412.  
  413. ; *** Values  :    a1 = pointer to begin of 4 words
  414.  
  415.  
  416. ; *** You get :    longword in label 'longadr'
  417.  
  418. create_longword:
  419.     addq.w    #2,a1
  420.     move.w    (a1),d5
  421.     swap    d5
  422.     addq.w    #4,a1
  423.     move.w    (a1),d5
  424.     lea    longadr(pc),a1
  425.     move.l    d5,(a1)
  426.     rts
  427.  
  428. ; *** Make longword for 4 copper words ***
  429.  
  430. ; *** values  :   a1 = pointer to bpl
  431. ;          d2 = what to put in bpl
  432.  
  433. ; *** You get :   longword in 2 words at bpl in copper-list1
  434.  
  435. make_words:
  436.     lea    bpl(pc),a1
  437.     addq.w    #2,a1
  438.     swap    d2        
  439.     move.w    d2,(a1)
  440.     addq.w    #4,a1
  441.     swap    d2
  442.     move.w    d2,(a1)
  443.     rts
  444.  
  445. ; *** Put text in current window ***
  446.  
  447. ; *** You give  : d2 = pointer to text 
  448. ;          d3 = lenght of text 
  449.  
  450. ; *** you get   : text in current window 
  451.  
  452. text_dos:
  453.     move.l    dosbase(pc),a6
  454.     move.l    outhandle(pc),d1
  455.     jmp    -48(a6)        ;Write
  456.  
  457. ; *** Test function keys ***
  458.  
  459. fkeys:
  460.     move.b    $bfec01,d0
  461.     lea    infotext+19(pc),a0
  462.     lea    statusflag(pc),a4
  463.     lea    speed(pc),a5
  464.     lea    bplcon0+2(pc),a3
  465.     lea    color+2(pc),a2
  466.  
  467.     cmp.b    #$5f,d0
  468.     beq.L    speed1    
  469.     cmp.b    #$5d,d0
  470.     beq.L    speed2    
  471.     cmp.b    #$5b,d0
  472.     beq.L    speed3    
  473.     cmp.b    #$59,d0
  474.     beq.L    speed4    
  475.     cmp.b    #$57,d0
  476.     beq.L    speed5    
  477.     cmp.b    #$55,d0
  478.     beq.L    LoRes    
  479.     cmp.b    #$53,d0
  480.     beq.L    Hires
  481.     cmp.b    #$51,d0
  482.     beq.L    address1
  483.     cmp.b    #$4f,d0
  484.     beq.L    address2
  485.     cmp.b    #$4d,d0
  486.     beq.L    color1
  487.     cmp.b    #$3f,d0
  488.     bne.s    test_help
  489.     lea    modulo+2(pc),a6
  490.     lea    modtext(pc),a5
  491.     move.w    #$0000,(a6)
  492.     move.b    #'0',(a5)+
  493.     move.b    #'0',(a5)+
  494.     move.b    #'0',(a5)+
  495.     move.b    #'0',(a5)
  496.     move.b    #1,(a4)        ;refresh beam
  497.  
  498. test_help:
  499.     cmp.b    #$41,d0
  500.     beq.L    helpME
  501.     cmp.b    #$75,d0
  502.     bne.s    fkeys_fertig
  503.     lea    endflag(pc),a1
  504.     move.b    #1,(a1)
  505.  
  506. fkeys_fertig:
  507.     rts
  508.  
  509. ; *** The different speeds ***
  510. ; *** Pointer to statusflag in a4
  511. ; *** Pointer to speed in a5
  512.     
  513. speed1:    
  514.     move.b    #'1',(a0)
  515.     move.l    #80,(a5)
  516.     move.b    #1,(a4)
  517.     rts
  518.  
  519. speed2:
  520.     move.b    #'2',(a0)
  521.     move.l    #160,(a5)
  522.     move.b    #1,(a4)
  523.     rts
  524. speed3:
  525.     move.b    #'3',(a0)
  526.     move.l    #240,(a5)
  527.     move.b    #1,(a4)
  528.     rts
  529.  
  530. speed4:
  531.     move.b    #'4',(a0)
  532.     move.l    #480,(a5)
  533.     move.b    #1,(a4)
  534.     rts
  535.  
  536. speed5:
  537.     move.b    #'5',(a0)
  538.     move.l    #960,(a5)
  539.     move.b    #1,(a4)
  540.     rts
  541.     
  542. ; *** Change resolution ***
  543. ; *** Pointer to bplcon0+2 in a3
  544. ; *** Pointer to statusfalg in a4
  545. ; *** Pointer to color+2 in a2
  546.  
  547. LoRes:        
  548.     move.w    #$1200,(a3)    
  549.     lea    infotext+32(pc),a0
  550.     move.b    #'L',(a0)+
  551.     move.b    #'o',(a0)
  552.     move.b    #1,(a4)
  553.     rts
  554.  
  555. Hires:
  556.     move.w    #$9200,(a3)
  557.     lea    infotext+32(pc),a0
  558.     move.b    #'H',(a0)+
  559.     move.b    #'i',(a0)
  560.     move.b    #1,(a4)
  561.     rts
  562.  
  563. address1:
  564.     move.l    #$20000,d2
  565.     bsr.L    make_words
  566.     rts
  567.  
  568. address2:
  569.     move.l    #$65000,d2
  570.     bsr.L    make_words
  571.     rts
  572.  
  573. ; *** Insert new color ****
  574.  
  575. Color1:
  576.     clr.b    $bfec01
  577.     lea    infotext+52(pc),a0
  578.     lea    colorcount(pc),a5
  579.     addq.b    #1,(a5)
  580.     cmp.b    #1,(a5)
  581.     beq.s    green
  582.  
  583.     cmp.b    #2,(a5)
  584.     beq.s    blue
  585.  
  586.     cmp.b    #3,(a5)
  587.     beq.s    white
  588.  
  589. Green:
  590.     move.b    #'4',(a0)+
  591.     move.b    #'a',(a0)+
  592.     move.b    #'4',(a0)
  593.     move.b    #1,(a4)
  594.     move.w    #$04a4,(a2)
  595.     rts
  596.  
  597. White:
  598.     move.b    #'a',(a0)+
  599.     move.b    #'a',(a0)+
  600.     move.b    #'a',(a0)
  601.     move.b    #1,(a4)
  602.     move.w    #$0aaa,(a2)
  603.     clr.b    (a5)
  604.     rts
  605.  
  606. Blue:
  607.     move.b    #'7',(a0)+
  608.     move.b    #'7',(a0)+
  609.     move.b    #'f',(a0)
  610.     move.b    #1,(a4)
  611.     move.w    #$055f,(a2)
  612.     rts
  613.  
  614.  
  615. ; *** The modulo value change routine ***
  616. ; *** a5 = pointer to modtext
  617. ; *** a4 = pointer to statusflag
  618.  
  619. ModuloUp:
  620.     lea    modulo+2(pc),a1
  621.     lea    modcounter(pc),a0
  622.     cmp.b    #7,(a0)    
  623.     bne.s    goback
  624.     addq.w    #$0002,(a1)
  625.     
  626. ; *** Display ascii value of modulo ***
  627.  
  628.     moveq    #3,d1            ;4 chars
  629.     move.l    (a1),d2            ;value to display
  630.     lea    modtext(pc),a1
  631.     bsr.L    asciiloop1        ;bin to ascii
  632.     move.b    #1,(a4)            ;set status flag / 
  633.     clr.b    (a0)
  634.  
  635. goBACK:    
  636.     addq.b    #1,(a0)
  637.     bra.L    exit
  638.  
  639. ModuloDown:
  640.     lea    modulo+2(pc),a1
  641.     lea    modcounter2(pc),a0
  642.  
  643.     cmp.b    #10,(a0)    
  644.     bne.s    goback2
  645.     subq.w    #$0002,(a1)
  646.     clr.b    (a0)
  647.  
  648. ; *** Insert ascii value in status line ***
  649.  
  650.     moveq    #3,d1            ;4 chars
  651.     move.l    (a1),d2            ;pointer to source (modtext)
  652.     lea    modtext(pc),a1
  653.     bsr.L    asciiloop1        ;bin to ascii
  654.     move.b    #1,(a4)            ;set status flag / 
  655.     clr.b    (a0)
  656.  
  657. goBACK2:
  658.     addq.b    #1,(a0)
  659.     bra.L    exit
  660.  
  661. ; -------------------- The copper list --------------------
  662.  
  663. copper:
  664.     dc.w    $0096,$0020
  665.     dc.w    $0102,$0000
  666.     dc.w    $008e,$2c81
  667.     dc.w    $0090,$2cc1
  668.     dc.w    $0092,$0038
  669.     dc.w    $0094,$00d0
  670.     dc.w    $0180,$0000
  671.     dc.w    $0108,$0000
  672.  
  673. tab_location:
  674.     dc.w    $00e0,$0007
  675.     dc.w    $00e2,$0000
  676.     dc.w    $0100,$9200
  677.  
  678. ; *** Beam at bottom of screen ***
  679.  
  680.     dc.w    $0182,$0aaf
  681.     dc.w    $2c11,$fffe,$0180,$0009
  682.     dc.w    $2f11,$fffe,$0180,$000b
  683.  
  684.     dc.w    $4311,$fffe,$0180,$0009
  685.     dc.w    $4611,$fffe,$0180,$0000
  686. color:    dc.w    $0182,$0aaa
  687.  
  688. ; *** Start location of plane ***
  689.  
  690. bpl:    dc.w    $00e0,$0006
  691.     dc.w    $00e2,$0000
  692.  
  693. modulo:    dc.w    $0108,$0000
  694.  
  695. bplcon0:dc.w    $0100,$9200
  696.  
  697.     dc.w    $ffff,$fffe
  698.  
  699. ; *** Text / Datas ***
  700.  
  701. text:    dc.b    'MemSearch V1.01 /  1990 by Orlando B. /  '
  702.     dc.b    'Current address position : $'
  703. textend:
  704. numtext:dc.b    '00000000'
  705. numtextend:
  706.  
  707. infotext:
  708.     dc.b    'STATUS :  Speed : 04  /  Mode : HiRes  /  Color : $0aaa  /'
  709.     dc.b    '  Modulo : $'
  710. modtext:
  711.     dc.b    '0000'
  712. modtextend:
  713. infotextend:
  714.  
  715. ; *** System things ***
  716.  
  717. gfxname:    dc.b    'graphics.library',0
  718.         even
  719. gfxbase:    dc.l    0
  720. bitmap:        blk.b    16,0
  721. rastport:    dc.l    0
  722.  
  723. ; *** Things for address display ***
  724.  
  725. longadr:    dc.l    0
  726. memadr:        dc.l    0
  727. speed:        dc.l    480
  728.  
  729. txtstruc:
  730.     dc.l    0
  731.     dc.w    8
  732.     dc.w    0
  733.  
  734. fontname:    dc.b    'topaz.font',0
  735.     even
  736. dosbase:    dc.l    0
  737. outhandle:    dc.l    0
  738. dosname:    dc.b    'dos.library',0
  739.         even
  740.  
  741. help:    
  742.     dc.b    $a
  743.     dc.b    $9b,"0;33;40m"
  744.     dc.b    'MemSearch V1.01'
  745.     dc.b    $9b,"0;31;40m"
  746.     dc.b    ' - by Orlando Budelacci, May 1990, Public Domain.',$a
  747.     dc.b    'Bitplane memory allocated from $'
  748. madr:    dc.b    '00000000 to $'
  749. madr2:    dc.b    '00000000',$a,$a
  750.     dc.b    '<Return>'
  751. helpend:
  752.  
  753.  
  754. ; **** Datas for the Help page ****
  755.  
  756. helptext:
  757.     dc.b    0,0,$c,$a,$a
  758.     dc.b    'F1 to F5 = Different speeds (slow to fast)',$a
  759.     dc.b    'F6 = LoRes',$a
  760.     dc.b    'F7 = HiRes',$a
  761.     dc.b    'F8 = Go to $20000',$a
  762.     dc.b    'F9 = Go to $65000',$a
  763.     dc.b    'FA = Change color',$a,$a
  764.     dc.b    'Left Alt   = Decrease modulo',$a
  765.     dc.b    'Left Amiga = Increase modulo',$a
  766.     dc.b    'Left Shift = Reset modulo',$a
  767.     dc.b    'Cursor Keys= Change address position',$a
  768.     dc.b    'Escape     = Quit',$a
  769.     dc.b    'Left Button= Quit',$a,$a
  770.     dc.b    'Press <Return>'
  771. helptextend:
  772.  
  773. ; *** Color routine ***
  774.  
  775. colorcount:    dc.b    0
  776. statusflag:    dc.b    1
  777.  
  778. ; *** Datas for modulo change routine ***
  779.  
  780. modcounter:    dc.w    0
  781. modcounter2:    dc.w    0
  782. endflag:    dc.b    0
  783.  
  784. nd:
  785.